package com.hifar.test.checktemplate.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.hifar.validate.UpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.hifar.plat.AopOption.Dict;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.Date;

import lombok.EqualsAndHashCode;

import java.io.Serializable;

import com.hifar.plat.AopOption.Excel;

import javax.validation.constraints.NotBlank;

/**
* <p>
* 环境-检查模版
* </p>
*
* @author wangkepeng
* @since 2024-12-12 13:46:14
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("HF_ENV_CHECK_TEMPLATE")
@ApiModel(value = "HfEnvCheckTemplate对象", description = "环境-检查模版")
public class HfEnvCheckTemplate implements Serializable{

    private static final long serialVersionUID = 1L;


    /**
    * 密级
    */
    @Dict(dictCode = "hf_sys_datasecret")
    @Excel(name="密级",sort=1)
    @ApiModelProperty(value = "密级")
    @TableField("secret_level")
    @JSONField(name = "secretLevel")
    private Integer secretLevel;


    /**
    * ID
    */
    @NotBlank(groups = UpdateGroup.class, message = "id不能为空!")
    @Excel(name = "ID", sort = 1)
    @ApiModelProperty(value = "ID")
    @TableId("ID")
    @JSONField(name = "id")
    private String id;


    /**
    * 租户ID
    */
    @Excel(name="租户ID",sort=1)
    @ApiModelProperty(value = "租户ID")
    @TableField(value = "TENANT_ID", fill = FieldFill.INSERT)
    @JSONField(name = "tenantId")
    private String tenantId;


    /**
    * 检查名称
    */
    @Excel(name="检查名称",sort=1)
    @ApiModelProperty(value = "检查名称")
    @TableField("CHECK_NAME")
    @JSONField(name = "checkName")
    private String checkName;


    /**
    * 备注
    */
    @Excel(name="备注",sort=1)
    @ApiModelProperty(value = "备注")
    @TableField("REMARKS")
    @JSONField(name = "remarks")
    private String remarks;


    /**
    * 状态
    */
    @Excel(name="状态",sort=1)
    @ApiModelProperty(value = "状态")
    @TableField("STATUS")
    @JSONField(name = "status")
    private Integer status;


    /**
    * 排序
    */
    @Excel(name="排序",sort=1)
    @ApiModelProperty(value = "排序")
    @TableField("ROW_SORT")
    @JSONField(name = "rowSort")
    private Integer rowSort;


    /**
    * 创建用户ID
    */
    @Excel(name="创建用户ID",sort=1)
    @ApiModelProperty(value = "创建用户ID")
    @TableField(value = "CREATE_USER_ID", fill = FieldFill.INSERT)
    @JSONField(name = "createUserId")
    private String createUserId;


    /**
    * 创建用户名称
    */
    @Excel(name="创建用户名称",sort=1)
    @ApiModelProperty(value = "创建用户名称")
    @TableField(value = "CREATE_USER_NAME", fill = FieldFill.INSERT)
    @JSONField(name = "createUserName")
    private String createUserName;


    /**
    * 创建时间
    */
    @Excel(name="创建时间",sort=1)
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    @JSONField(name = "createTime")
    private Date createTime;


    /**
    * 更新用户ID
    */
    @Excel(name="更新用户ID",sort=1)
    @ApiModelProperty(value = "更新用户ID")
    @TableField(value = "UPDATE_USER_ID", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateUserId")
    private String updateUserId;


    /**
    * 更新用户名称
    */
    @Excel(name="更新用户名称",sort=1)
    @ApiModelProperty(value = "更新用户名称")
    @TableField(value = "UPDATE_USER_NAME", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateUserName")
    private String updateUserName;


    /**
    * 更新时间
    */
    @Excel(name="更新时间",sort=1)
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "UPDATE_TIME", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateTime")
    private Date updateTime;


    /**
     * 0未删除1已删除
     */
    @Excel(name = "0未删除1已删除", sort = 1)
    @ApiModelProperty(value = "0未删除1已删除")
    @TableLogic
    @JSONField(name = "delFlag")
    private Integer delFlag;

    @NotBlank(message = "type不能为空!")
    @ApiModelProperty("模板类型：1：试验执行检查模板 2：交接班检查模板 ")
    private String type;

}